using System.Collections.Generic;
using System.Threading;
using UnityEngine.Profiling;

namespace Kayac
{
	public class ThreadPool
	{
		public abstract class Job
		{
			private ManualResetEventSlim completeEvent;

			public bool Complete => false;

			public abstract void Execute();

			public Job()
			{
			}

			public void Wait()
			{
			}

			public void Reset()
			{
			}

			public void SetComplete()
			{
			}
		}

		private AutoResetEvent nonEmptyEvent;

		private Thread[] threads;

		private Queue<Job> queue;

		private CustomSampler[] jobSamplers;

		public ThreadPool(int threadCount)
		{
		}

		public void Dispose()
		{
		}

		public void Add(Job job)
		{
		}

		private void ThreadFunc(object arg)
		{
		}

		private bool TryExecute(int index)
		{
			return false;
		}

		private bool JoinThread(int maxWaitMs)
		{
			return false;
		}
	}
}
